Plik {\sf Makefile}.
\begin{lstMake}
CC=gcc
CXX=g++

SOURCES_STRCPY = strdruk.c strcpy.c 
C_OBJECTS_STRCPY = $(addprefix c_,$(SOURCES_STRCPY:.c=.o))
CPP_OBJECTS_STRCPY = $(addprefix cpp_,$(SOURCES_STRCPY:.c=.o))

all: c_strcpy.exe c_strncpy.exe
allcpp: cpp_strcpy.exe cpp_strncpy.exe

c_strcpy.exe: $(C_OBJECTS_STRCPY)
	$(CC) $^ -o $@
	
cpp_strcpy.exe: $(CPP_OBJECTS_STRCPY)
	$(CXX) $^ -o $@

c_%.o: %.c
	$(CC) -c -o $@ $<

cpp_%.o: %.c
	$(CXX) -c -o $@ $<

clean:
	rm -f *.o *.exe

PHONY: clean all
\end{lstMake}
Druga wersja {\sf Makefile}
\begin{lstMake}
CC=gcc
CXX=g++

all: allc allcpp

allc: c_strcpy.exe 
allcpp: cpp_strcpy.exe 

c_strcpy.exe: c_strdruk.o c_strcpy.o
	$(CC) $^ -o $@
	
cpp_strcpy.exe: cpp_strdruk.o cpp_strcpy.o
	$(CXX) $^ -o $@

c_%.o: %.c
	$(CC) -c -o $@ $<

cpp_%.o: %.c
	$(CXX) -c -o $@ $<

clean:
	rm -f *.o *.exe

PHONY: clean all allc allcpp
\end{lstMake}